/*
	MIDAS Context Based Routing
	cbr_address.h
	Copyright (c) 2007 Radoslaw Olgierd Schoeneich
	MEAG IT PW
*/

#ifndef cbr_address_h_
#define cbr_address_h_

#include <string>
#include <set>
#include "cbr_types.h"
#include "cbr_crtable.h"

class cbr_ContextAddress : private cbr_Object {
private:
	cbr_ConceptsSet	concepts_set;

public:
	cbr_ContextAddress(const std::string&);
	cbr_ContextAddress(const cbr_ContextAddress& src)
	{
		concepts_set.insert(src.concepts_set.begin(),
				    src.concepts_set.end());
	}

	std::string	getAsString() const;
	cbr_TriplesList	getAsTriples(const cbr_ID&) const;
	const cbr_ConceptsSet* getAsSet() const { return &concepts_set; }

	bool 		matches(const cbr_Concept&) const;
};

cbr_ContextAddress * cbr_getLocalCBA(cbr_ID);

#endif	// cbr_address_h_
